#pragma once

#include <string>

	class wruntime_error
		: public std::runtime_error
	{

	public:                 // --- PUBLIC INTERFACE ---

		// constructors:
		wruntime_error(const std::wstring& errorMsg);
		// copy/assignment:
		wruntime_error(const wruntime_error& rhs);
		wruntime_error&     operator=(const wruntime_error& rhs);
		// destructor:
		virtual             ~wruntime_error();

		// exception methods:
		const std::wstring& errorMsg() const;

	private:                // --- DATA MEMBERS ---

		// data members:
		std::wstring        mErrorMsg; ///< Exception error message.

	};

	std::string to_narrow_string(std::wstring const& text);
	std::wstring to_wide_string(std::string const& text);

